/**
 * 
 */
package cn.terrence.myrpc.common.proxy.cglib;

import net.sf.cglib.proxy.Enhancer;

/**
 * @author Terrence2013
 * 2018年1月23日 上午11:19:44
 * Cglib代理实现类
 */
public class CglibProxy {
	
	private CglibProxy(){};
	
	@SuppressWarnings("unchecked")
	public static <T>T build(Class<T> clazz,CglibMethodInterceptor myProxy){
		Enhancer enhancer = new Enhancer();
		enhancer.setSuperclass(clazz);
		enhancer.setCallback(myProxy);
		enhancer.setCallbackFilter(new CglibFilter());
		enhancer.setUseCache(Boolean.FALSE);
		return (T) enhancer.create();
	}

}
